package cn.tedu.d20_innerclass;
/**本类测试成员内部类被static修饰后的效果*/
public class TestInner3 {
    public static void main(String[] args) {
        //1.创建内部类对象访问play()
//        Out3.Inner3 oi3=new Out3().new Inner3();
//        oi3.play();
        //2.通过匿名内部类对象访问play()
//        new Out3().new Inner3().play();

        /*当内部类被static修饰后，上面的创建对象报错*/
        //通过外部类的类名来创建内部类对象
        Out3.Inner3 oi3=new Out3.Inner3();

        //通过匿名对象调用play()
        new Out3.Inner3().play();

        //访问静态内部类的静态方法---链式加载
        Out3.Inner3.play2();

    }
}

class Out3{


    //成员内部类被static修饰---浪费内存
    static class Inner3{
        //创建内部类普通成员方法
        public void play(){
            System.out.println("Inner3...春暖花开写代码");
        }

        //创建静态方法
        public static void play2(){
            System.out.println("Inner3...冬暖夏凉写代码");
        }

    }
}
